home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_10 / saks / strtst6.cpp < prev   
C/C++ Source or Header  |  1994-08-08  |  2KB  |  76 lines

  1. Listing 9 - a test program for comqs as a queue of str
  2.  
  3. //
  4. // strtst6.cpp - test comq6 using str elements
  5. //
  6.  
  7. #include <iostream.h>
  8.  
  9. #include "comq6.h"
  10. #include "comstr6.h"
  11. #include "showheap.h"
  12.  
  13. ostream &operator<<(ostream &os, comq &q)
  14.     {
  15.     comstr *ps;
  16.     comq::iterator cqi(q);
  17.     while ((ps = (comstr *)cqi.next()) != 0)
  18.             os << ' ' << *ps;
  19.     return os;
  20.     }
  21.  
  22. #define DIM(a) (sizeof(a)/sizeof(a[0]))
  23.  
  24. void test()
  25.     {
  26.     char c;
  27.     size_t qn;
  28.     comstr qe;
  29.     comq q[4];
  30.     while (cin >> c)
  31.         {
  32.         showheap();
  33.         if (c == 'q')
  34.             break;
  35.         if (c == 'a')
  36.             {
  37.             cin >> qn >> qe;
  38.             if (qn >= DIM(q))
  39.                 cout << "no such queue\n";
  40.             else
  41.                 q[qn].append(qe);
  42.             }
  43.         else if (c == 'c')
  44.             {
  45.             cin >> qn;
  46.             if (qn >= DIM(q))
  47.                 cout << "no such queue\n";
  48.             else
  49.                 q[qn].clear();
  50.             }
  51.         else if (c == 'r')
  52.             {
  53.             cin >> qn;
  54.             if (qn >= DIM(q))
  55.                 cout << "no such queue\n";
  56.             else if (q[qn].remove(qe))
  57.                 cout << "removed " << qe << '\n';
  58.             else
  59.                 cout << "q[" << qn << "] is empty\n";
  60.             }
  61.         else
  62.             continue;
  63.         for (size_t i = 0; i < DIM(q); ++i)
  64.             cout << i << ':' << q[i] << '\n';
  65.         }
  66.     }
  67.  
  68. int main()
  69.     {
  70.     showheap();
  71.     test();
  72.     showheap();
  73.     return 0;
  74.     }
  75.  
  76.